home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Columbia Kermit
/
kermit.zip
/
newsgroups
/
misc.19980901-19981211
/
000089_news@newsmaster….columbia.edu _Thu Oct 1 09:54:38 1998.msg
< prev
next >
Wrap
Internet Message Format
|
2020-01-01
|
4KB
Return-Path: <news@newsmaster.cc.columbia.edu>
Received: from newsmaster.cc.columbia.edu (newsmaster.cc.columbia.edu [128.59.35.30])
by watsun.cc.columbia.edu (8.8.5/8.8.5) with ESMTP id JAA18170
for <kermit.misc@watsun.cc.columbia.edu>; Thu, 1 Oct 1998 09:54:38 -0400 (EDT)
Received: (from news@localhost)
by newsmaster.cc.columbia.edu (8.8.5/8.8.5) id JAA03725
for kermit.misc@watsun; Thu, 1 Oct 1998 09:54:35 -0400 (EDT)
Path: news.columbia.edu!watsun.cc.columbia.edu!fdc
From: fdc@watsun.cc.columbia.edu (Frank da Cruz)
Newsgroups: comp.protocols.kermit.misc
Subject: Re: Telnet disconnect
Date: 1 Oct 1998 13:54:31 GMT
Organization: Columbia University
Lines: 53
Message-ID: <6v01in$qtb$1@apakabar.cc.columbia.edu>
References: <F04wA5.DqL@cix.compulink.co.uk>
NNTP-Posting-Host: watsun.cc.columbia.edu
Xref: news.columbia.edu comp.protocols.kermit.misc:9272
In article <F04wA5.DqL@cix.compulink.co.uk>,
Lygo Systems <lsystemsd@cix.compulink.co.uk> wrote:
: Telnet disconnection due to reboot.
:
: I have a number of users connecting with MS-DOS Kermit telnet sessions
: into Redhat Linux (4.2 & 5.1). If they close the connection with the
: normal Kermit exit command without first logging off, then the telnet
: session is closed on Linux which is just what I want. If, however, they
: reboot their PC with ALT CTL DEL then the session stays active.
:
: The reason that this is a problem is that they are running the Pick/D3
: database which has a limited number of active users allowed to be logged
: on at the same time. If they reboot their PC then that will effectively
: lose one user unless the previous session is automatically logged off.
: Pick has a couple of commands that in theory should deal with the
: situation: DCD-ON and TRAP DCD EXIT. In other words if DCD is lost then
: the session should be automatically closed. But it ain't happening...
:
By design, it is not possible for the application on one end of a TCP/IP
connection to detect that the connection is broken, except by trying to send
data on the connection (as Jeff pointed out). Remember, TCP/IP is not a
point-to-point connection like you get with a modem (which has a constant,
out-of-band carrier signal that gives the status of the connection), nor is
it a virtual circuit as in X.25. In fact, IP packets are datagrams that can
arrive (or not) from any direction at any time at all. Datagrams are a
feature of a connectionless protocol, which, in a sense, means there is no
connection at the IP level.
There is a little-used keepalive mechanism at the TCP level to allow the end
partners of a TCP session to detect when there has been no activity for a
certain amount of time, but even when it is used, the timeout is generally
set an an hour or more.
In general, it is each application's responsibility to monitor the
connection in some application-specific way. For example, a UNIX login
shell might time out and exit if there has been no i/o for (say) 20 minutes.
However, applications like Telnet do not include any *active* form of
monitoring. If the server disappears, the client never finds out until the
user presses a key (which causes an i/o attempt on the broken session). But
if the client disappears, there is no user on the server end to press a key,
so the server might easily wait forever for the next message from the
client.
When Kermit is told to exit, it closes any open connections. But obviously,
if a PC is turned off, or crashes, neither Kermit nor the underlying TCP/IP
stack have any way to send close messages, and so any connection partners
are left waiting for an indeterminate amount of time for IP packets to
arrive from the great beyond.
I think you will see the same behavior no matter what Telnet client you use.
It's not a Kermit problem; it's a TCP/IP protocol feature.
- Frank